#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int dataType;
typedef struct double_linked_list {
	dataType data;
	struct double_linked_list* next;
	struct double_linked_list* pre;
}DList;

DList* createDListNode(dataType x);
//void initDList(DList** pphead);
DList* initDList();
void printDList(DList* phead);
void DLPushback(DList* phead, dataType x);
void DLPopback(DList* phead);
bool isEmpty(DList* phead);
void DLPushFront(DList* phead, dataType x);
void DLPopFront(DList* phead);
DList* DLFind(DList* phead, dataType x);
void DLInsert(DList* pos, dataType x);
void DLErase(DList* pos);
void DLDestroy(DList* phead);
